package cn.iocoder.yudao.module.erp.controller.admin.report.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 贵金属交易趋势分析响应 VO
 */
@Schema(description = "管理后台 - 贵金属交易趋势分析响应 VO")
@Data
public class ErpTrendAnalysisRespVO {

    @Schema(description = "贵金属类型", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer metalType;

    @Schema(description = "贵金属类型名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String metalTypeName;

    @Schema(description = "时间粒度", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer timeGranularity;

    @Schema(description = "趋势数据列表", requiredMode = Schema.RequiredMode.REQUIRED)
    private List<TrendDataVO> trendDataList;

    /**
     * 趋势数据 VO
     */
    @Schema(description = "趋势数据")
    @Data
    public static class TrendDataVO {

        @Schema(description = "时间点", requiredMode = Schema.RequiredMode.REQUIRED)
        private String timePoint;

        @Schema(description = "销售数量(克)", requiredMode = Schema.RequiredMode.REQUIRED)
        private BigDecimal saleQuantity;

        @Schema(description = "销售金额(元)", requiredMode = Schema.RequiredMode.REQUIRED)
        private BigDecimal saleAmount;

        @Schema(description = "回收数量(克)", requiredMode = Schema.RequiredMode.REQUIRED)
        private BigDecimal recycleQuantity;

        @Schema(description = "回收金额(元)", requiredMode = Schema.RequiredMode.REQUIRED)
        private BigDecimal recycleAmount;

        @Schema(description = "金属价格(元/克)", requiredMode = Schema.RequiredMode.REQUIRED)
        private BigDecimal metalPrice;
    }
} 